package com.self.member.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.self.member.dto.UserDto;
import com.self.member.model.User;
import com.self.member.vo.*;

import java.util.List;
import java.util.Map;

public interface UserService extends IService<User>{


    Page<User> findByPage(Page<User> page, String mobile, Long userId, String userName, String realName, Integer status, Integer reviewsStatus);

    Page<User> findDirectInvitePage(Page<User> page, Long userId);

    void updateUserAuthStatus(Long id, Byte authStatus, Long authCode, String remark);

    LoginUserResultVo login(UserLoginVo loginForm);

    boolean identifyVerify(Long valueOf, UserAuthForm userAuthForm);

    void authUser(Long valueOf, List<String> imgs);

    boolean updatePhone(Long valueOf, UpdatePhoneParam updatePhoneParam);

    boolean checkNewPhone(String mobile, String countryCode);

    boolean updateUserPayPwd(Long userId, UpdateLoginParam updateLoginParam);

    boolean unsetPayPassword(Long userId, UnsetPayPasswordParam unsetPayPasswordParam);

    boolean updateUserLoginPwd(Long userId, UpdateLoginParam updateLoginParam);

    List<User> getUserInvites(Long userId);

    List<UserDto> getBasicUsers(List<Long> ids);

    boolean register(RegisterParam registerParam);

    boolean unsetLoginPwd(UnSetPasswordParam unSetPasswordParam);

    Map<Long, UserDto> getBasicUsersByUsername(List<Long> ids, String username, String mobile);
}
